The present invention relates to the field of broadcast applications. In particular, the present invention pertains to the field of shared virtual worlds which includes an architecture that utilizes digital television broadcast to distribute information that enables large multi-user applications.
Computer systems have become more powerful in terms of the rate at which they process data, and consequently they are able to execute applications of increasing complexity. In addition, computer systems are now capable of rendering and displaying more complex and realistic images to the user. The capability to perform many operations quickly and to display realistic graphics is manifested in the creation of computer-implemented virtual worlds that provide to the user the appearance of a three-dimensional graphical environment and allow the user to interact with and change that graphical environment.
The use of virtual worlds has many applications; one of the most popular and familiar is computer gaming. The user is in effect immersed in the computer-implemented virtual world, perhaps by assuming the role of a character in the virtual world. The program application is loaded onto the user""s computer system as software and as it is executed it presents to the user images of the virtual world from the perspective of the user""s character. The user moves through the virtual world, typically effecting changes to it and reacting to scenarios created by the program application, and the program application in turn reacts to the user by introducing different scenarios and modifying the virtual world to reflect the changes effected by the user.
Computer systems connected in networks, most notably the World Wide Web, e.g., the Internet, permit virtual worlds to be created which can be simultaneously interacted with by more than one user. In one of the simplest examples, a playing field is created using a program application which is implemented as software on each user""s computer system. Each user is represented as a character in the shared virtual world, and is able to interact with other users (via their characters) as well as manipulate objects in the shared virtual world. The network is used for communicating the actions of each user to the other users, and the program application coordinates and integrates these actions into the shared virtual world and displays the results to all of the users. Thus, each user functions independently, and the program application incorporates their actions into the shared virtual world and propagates relevant information (as data) to the other users, so that each user sees the same things happening at the same times, albeit from their own perspective. The key, then, to making a shared virtual world function properly when more than one user is involved is to maintain the consistency of the shared virtual world among all of the users; in particular consistency should be maintained among those users who are simultaneously interacting with and viewing the same portion of the shared virtual world.
Some shared virtual world environments are expected to have the capability to accommodate a very large number of users. For example, some recent multi-user virtual world applications offer a playing field of 50 virtual square-kilometers, which is sufficient for hundreds of thousands and perhaps even millions of users. Although these massively multi-user virtual worlds are currently primarily directed to gaming, there may be other applications requiring interactions between a large number of users sharing a proportionately large virtual world.
It follows that a large shared virtual world with a substantial number of users requires the exchange of a significant amount of data, and that this exchange needs to occur quickly in order to maintain the consistency of the virtual world among all the users. A processing problem exists whereas many computer operations are taking place simultaneously in order to construct the shared virtual world and to modify it in response to user actions, and the results of these operations need to be coordinated and then simultaneously communicated to all interested users so that the users can effectively interact with each other in a shared environment.
However, prior art solutions to this problem are problematic because the size of the shared virtual world and the number of users are practically limited by the constraints imposed by the capabilities of the communication network. The rate at which server systems (e.g., those computer systems that in general provide the structure of the network) and client systems (e.g., the users computer systems) can transfer data over a network places a limit on the number of users that can participate in a multi-user application. In addition, because the capacity of networks such as the Internet is limited, user access to and communication with a massively multi-user application can be significantly slowed when a large number of people are simultaneously attempting to access the same site or are occupying a large number of the communication lines available in the network.
The prior art solutions are also problematic because the data transfer rates and the capacities of communication networks such as the Internet limit the complexity and graphical details of the virtual world. A large amount of data needs to be transferred to create and maintain a virtual world that is not only three-dimensional but is also as realistic as possible in other ways, such as allowing three-dimensional user movement rather than merely allowing two-dimensional user movement. However, because of the disadvantages of the prior art communication networks described above, the richness of the shared virtual world is limited because of the amount of time it takes to download a complex virtual world and to continually update all users of the shared virtual world in a massively multi-user application.
In some prior art implementations of virtual world environments data streaming technologies are used to transfer data over the Internet. However, these technologies are Internet Protocol-based and hence must rely on Internet Protocol networks. Thus, these prior art implementations are also limited by the capabilities of the network.
Therefore, what is needed is a system and/or method that enables the construction of a highly realistic shared virtual world for multi-user applications that can be readily and quickly distributed and updated to interactive users. What is also needed is a system and/or method that accomplishes the above and allows modifications to the shared virtual world to be rapidly communicated to users. What is needed further is a system and/or method that accomplishes the above and also allows a large number of users to interact with the shared virtual world and with other users in the shared virtual world while maintaining the consistency of the shared virtual world for all users.
Accordingly, the present invention provides a system and method that enables the construction of a highly realistic shared virtual world for multi-user applications that is readily and quickly distributed and updated to interactive users. The present invention also provides a system and method that allows modifications to the shared virtual world to be rapidly communicated to users. The present invention further provides a system and method that allows a large number of users to interact with the shared virtual world and with other users in the shared virtual world while maintaining the consistency of the shared virtual world for all users. These and other objects and advantages of the present invention will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments which are illustrated in the various drawing figures.
The present invention provides a broadcast system architecture implementing a method for distributing data for a multi-user application. The broadcast system architecture includes a plurality of server systems communicatively coupled in a network, and a digital broadcast source. A first group, a second group and a third group of client systems are communicatively coupled to the server systems, wherein a client system is coupled to a single server system. The first group and the second group of client systems execute a partition of the multi-user application. Data are forwarded from a client system in the first group of the client systems to one of the server systems (e.g., a first server system), wherein the data represent a change to the partition executed by the client system. The data are forwarded from this first server system to other server systems, wherein each of the other server systems comprise at least one client system that interfaces with the partition. The data are forwarded from these other server systems to the second group of client""systems interfacing with the partition. The data are also forwarded from the first server system to the digital broadcast source. The data are broadcast from the broadcast source to the third group of client systems not presently interfacing with the partition.
More specifically, in the present embodiment, the present invention uses a digital television broadcast (DTV) to broadcast data to the third group of client systems. The DTV broadcast can also be used to broadcast shared data for constructing a realistic virtual world to all client systems. In another embodiment, the digital television broadcast occurs using a virtual world channel which client-systems access in order to receive data. DTV broadcast in a shared virtual world is advantageous because: 1) DTV broadcast content enriches the shared virtual world; and 2) DTV broadcast provides a high bandwidth data path which can be utilized by shared virtual world processes.
In one embodiment, before data are forwarded from the first server system to the digital broadcast source, related data are accumulated in a group and the group of related data is forwarded to the broadcast source.
In one embodiment, the client systems and the server systems are compliant with Internet Protocol using the World Wide Web. The broadcast source is communicatively coupled to the server systems using Internet Protocol.